package de.stefanocke.roo.wicket;

import java.lang.annotation.Annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * The trigger annotation for user defined form components. (Roo generated form components don't need this annotation
 * since they have their own specialized trigger annotation.)
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
public @interface RooTableCellComponent{
	/**
	 * 
	 * @return the model class this component is suitable for
	 */
	Class<?> modelClass();

	/**
	 * Only if all of those annotations are present at the considered bean property, 
	 * this form component is used.
	 * 
	 * @return the annotations 
	 */
	Class<? extends Annotation>[] requiredAnnotations() default {};
	

}

